package com.ruoyi.shop.service;

import java.util.List;

import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.shop.domain.ShopUser;

/**
 * 用户信息，保存用户信息。Service接口
 * 
 * @author ruoyi
 * @date 2021-09-14
 */
public interface IShopUserService 
{
    /**
     * 查询用户信息，保存用户信息。
     * 
     * @param id 用户信息，保存用户信息。主键
     * @return 用户信息，保存用户信息。
     */
    public ShopUser selectShopUserById(Long id);

    /**
     * 查询用户信息，保存用户信息。列表
     * 
     * @param shopUser 用户信息，保存用户信息。
     * @return 用户信息，保存用户信息。集合
     */
    public List<ShopUser> selectShopUserList(ShopUser shopUser);

    /**
     * 新增用户信息，保存用户信息。
     * 
     * @param shopUser 用户信息，保存用户信息。
     * @return 结果
     */
    public int insertShopUser(ShopUser shopUser);

    /**
     * 修改用户信息，保存用户信息。
     * 
     * @param shopUser 用户信息，保存用户信息。
     * @return 结果
     */
    public int updateShopUser(ShopUser shopUser);

    /**
     * 批量删除用户信息，保存用户信息。
     * 
     * @param ids 需要删除的用户信息，保存用户信息。主键集合
     * @return 结果
     */
    public int deleteShopUserByIds(String ids);

    /**
     * 删除用户信息，保存用户信息。信息
     * 
     * @param id 用户信息，保存用户信息。主键
     * @return 结果
     */
    public int deleteShopUserById(Long id);

    /**
     * 校验用户名称是否唯一
     *
     * @param loginName 登录名称
     * @return 结果
     */
    public String checkLoginNameUnique(String loginName);

    /**
     * 校验手机号码是否唯一
     *
     * @param user 用户信息
     * @return 结果
     */
    public String checkPhoneUnique(ShopUser user);

    /**
     * 校验email是否唯一
     *
     * @param user 用户信息
     * @return 结果
     */
    public String checkEmailUnique(ShopUser user);

    /**
     * 注册
     */
    public String register(ShopUser user);

    /**
     * 用户名 密码登录
     * @param mobile
     * @param password
     * @return
     * @throws Exception
     */
    public ShopUser login(String mobile, String password) throws Exception;
}
